今天讓我們來新增自己的第一個視圖(View)吧!
前往 myapp/views.py 並且新增
from django.http import HttpResponse
def hello_world(request):
return HttpResponse("Hello World!")
如圖:
先是從 django.http 模組中引用 HttpResponse 類別,再宣告 hello_world 。
當 hello_world 被呼叫時則回傳包含字串 Hello World! 的 HttpResponse 物件。
接著,前往 myproject/urls.py 中,引入剛剛再views中定義的 hello_world :
from myapp.views import hello_world
以及在 urlpatterns 中新增這一行:
path('hello/', hello_world),
如下圖:
完成後,當我們前往 http://127.0.0.1:8000/hello/
變會看到以下畫面:
如果你有看到這個畫面那麼恭喜你成功了!
而上述的步驟就是建立一個view最基本的步驟。接下來,讓我們多一點變化:
在 urls.py 中新增一個 add:
from django.contrib import admin
from django.urls import path
from myapp.views import hello_world,add #新增
urlpatterns = [
path('admin/', admin.site.urls),
path('hello/', hello_world),
path('add/<int:a>/<int:b>', add), #新增
]
我們在 myapp/views.py 定義 add :
def add(request, a, b): #新增add
s = a + b
return HttpResponse(s)
如圖:
儲存之後當我們進入 127.0.0.1:8000/add/5/10 這個網址
我們便能夠顯示 5+10 結果,如圖:
然而這功能其實你也能夠用正規表示法來做,但是正規表示法就比較麻煩了:
from django.contrib import admin
from django.urls import path, re_path #引進re_path
from myapp.views import hello_world,add
urlpatterns = [
path('admin/', admin.site.urls),
path('hello/', hello_world),
re_path(r'add/(\d{1,2})/(\d{1,2})', add), #正規表示法
]
這下你知道為什麼我不想用正規表示法了吧
接著修改 views.py 的 add :
def add(request, a, b): #修改
s = int(a) + int(b)
return HttpResponse(s)
一樣也能做到相同的功能。
今天就先寫到這,明天將講解模版(Template)的應用。